﻿using System.Collections.Generic;
using GigaSite.Domain.Interfaces.Repositories;
using GigaSite.Domain.IoC;

namespace GigaSite.Web.Models.Validators
{
    /// <summary>
    /// Валидатор для модели регистрации
    /// </summary>
    public class RegisterModelValidator: IModelValidator<RegisterModel>
    {
        /// <summary>
        /// Валидирует указанную модель
        /// </summary>
        /// <typeparam name="T">Тип валидируемой модели</typeparam>
        /// <param name="model">Валидируемая модель</param>
        /// <returns>Коллекция ошибок валидации</returns>
        public IList<ModelValidationError> Validate(RegisterModel model)
        {
            // Список
            var result = new List<ModelValidationError>();

            // Валидируем 
            if (Locator.GetService<IUsersRepository>().GetUserByIdentity(model.UserName) != null)
            {
                result.Add(new ModelValidationError("UserName","Пользователь с таким логином уже зарегистрирован в системе"));
            }

            return result;
        }
    }
}